package com.pe.pgn.clubpgn.domain;


import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.compass.annotations.Searchable;
import org.compass.annotations.SearchableId;
import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;


@Entity
@Table(name = "clpb_usuario")
@Searchable
public class ClpbUsuario extends CamposAuditoria{

	private static final long serialVersionUID = 1L;
	private Long id;
    private String deUsername;
    private String deNombre;
    private String deApellidos;
    private String deEmail;
    private ClpbEstacion clpbEstacion;
    private boolean stUsuario;
    
    @Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	@SearchableId	
	public Long getId() {
		return id;
	}
    
    @Column(name = "de_username", nullable = false)
	public String getDeUsername() {
		return deUsername;
	}

    @Column(name = "de_nombre", nullable = false)
	public String getDeNombre() {
		return deNombre;
	}

    @Column(name = "de_apellidos", nullable = false)
	public String getDeApellidos() {
		return deApellidos;
	}

    @Column(name = "de_email", nullable = false)
	public String getDeEmail() {
		return deEmail;
	}

    @ManyToOne(targetEntity = ClpbEstacion.class)
    @JoinColumn(name = "co_estacion")
    public ClpbEstacion getClpbEstacion() {
		return clpbEstacion;
	}
    
    @Column(name = "co_usuario_creador", updatable = false, nullable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}

    @Type(type = "yes_no") 
    @Column(name = "st_usuario", nullable = false)
	public boolean isStUsuario() {
		return stUsuario;
	}

	public void setDeUsername(String deUsername) {
		this.deUsername = deUsername;
	}

	public void setDeNombre(String deNombre) {
		this.deNombre = deNombre;
	}

	public void setDeApellidos(String deApellidos) {
		this.deApellidos = deApellidos;
	}

	public void setDeEmail(String deEmail) {
		this.deEmail = deEmail;
	}

	public void setClpbEstacion(ClpbEstacion clpbEstacion) {
		this.clpbEstacion = clpbEstacion;
	}

	public void setStUsuario(boolean stUsuario) {
		this.stUsuario = stUsuario;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@Override
	public boolean equals(Object o) {
		return false;
	}

	@Override
	public int hashCode() {
		return 0;
	}

	@Override
	public String toString() {
		return null;
	}

	
}
